package com.suixun.service.credits;

import java.util.List;

import com.suixun.entity.ext.credits.company.CompanyPage;
import com.suixun.entity.form.credits.company.CompanyForm;
import com.suixun.entity.form.credits.company.CompanyPageForm;
import com.suixun.vo.credits.BaseVo;
import com.suixun.vo.credits.ResponseVo;

/**
 * 商家相关资料
 * 
 * @author yh
 * @date 2017年12月7日
 */
public interface CompanyService {

    /**
     * 分页查询商家列表
     * 
     * @param param
     *            查询条件
     * @return
     */
    ResponseVo<CompanyPage> findPage(CompanyPageForm param);

    /**
     * 添加
     * 
     * @param param
     * @param userid
     *            操作人
     * @throws Exception
     */
    void insert(CompanyForm param, Integer userid) throws Exception;

    /**
     * 修改
     * 
     * @param param
     */
    void update(CompanyForm param) throws Exception;

    /**
     * 查询所有商户名称
     * 
     * @return
     */
    List<String> findAllName();

    /**
     * 修改前的查询
     * 
     * @param companyid
     *            公司标识
     * @return
     */
    CompanyForm findOneByCompanyid(Integer companyid);

    /**
     * 商家审核
     * 
     * @param companyid
     *            商户id
     * @param opinion
     *            审核意见
     * @param isPass
     *            是否通过,true通过
     * @param 审核用户
     */
    void auditCompany(Integer companyid, String opinion, Boolean isPass, Integer userid) throws Exception;

    /**
     * 验证商户名是否可用
     * 
     * @param name
     * @param companyid
     *            不为空则是修改时校验
     * @return true可用,false不可用
     */
    boolean verifyName(String name, Integer companyid);

    /**
     * 查询所有审核通过的商户
     * 
     * @return 商户id与名称
     */
    List<BaseVo> findAllPassName();

    /**
     * 置顶
     * 
     * @param id
     * @param isCancel
     *            是否取消置顶,true取消置顶
     */
    void updateTop(Integer id, boolean isCancel);

}
